package com.javaee.xiangyang.service;

import com.javaee.xiangyang.common.ServiceResultEnum;
import com.javaee.xiangyang.dto.OrderGoods;
import com.javaee.xiangyang.entity.Order;
import java.util.List;

public interface OrderService {

    /**
     * 用户生成订单
     * 生成订单同时需要扣除用户账户里的钱
     */
    ServiceResultEnum insertOrder(Order order);

    /**
     * 用户根据用户Id查询用户所拥有的订单
     */
    List<OrderGoods> findOrderByUserAccount(Order order);

    /**
     * 根据订单编号查询具体订单信息
     * 管理员用户通用
     */
    OrderGoods findOrderByOrderId(Order order);

    /**
     * 根据订单状态查找具体订单信息
     */
    List<OrderGoods> findOrderByState(Order order);

    /**
     * 管理员查看所有订单
     * 包括商品信息
     */
    List<OrderGoods> findAllOrder();

    /**
     * 管理员和用户管理订单状态
     */
    ServiceResultEnum updateOrderStateByOrderId(Order order);

}
